package wodegua.d21_map;

import java.util.HashMap;
import java.util.Map;

/**
 * Map集合称为双列集合，格式:{key1=value1,key2=value2,key3=value3,…}，一次需要存一对数据做为一个元案.
 * Map集合的每个元素“key=value”称为一个键值对/键值对对象/一个Entry对象，Map集合也被叫做“键值对集合”
 * Map集合的所有键是不允许重复的，但值可以重复，键和值是-一对应的，每一个键只能找到自己对应的值
 *
 * Map集合体系的特点
 * 注意:Map系列集合的特点都是由键决定的，值只是一个附属品，值是不做要求的
 * ●HashMap(由键决定特点):无序、不重复、无索引;(用的最多)
 * LinkedHashMap(由键决定特点):由键决定的特点:有序、不重、无索引
 * TreeMap(由键决定特点):按照大小默认升序排序
 */
public class MapDemo {
    /**
     * 目标：掌握map集合的特点
     */
    public static void main(String[] args) {
        Map<String, Integer> map = new HashMap<>();
        map.put("手表", 100);
        map.put("手机", 200);
        map.put("手机", 2);
        map.put("java", 2);
        map.put(null, null);
        System.out.println(map);

        //2.public int size():获取集合的大小
        System.out.println(map.size());

        //3.public void clear():清空集合
//        map.clear();
//        System.out.println(map);

        //4.public boolean isEmpty():判斯集合是否为空，为空返回true,反之！
        System.out.println(map.isEmpty());

        //5.public get(object key): 根据键获取对应值
        System.out.println(map.get("java"));

        // 6.public remove(Object key):根据键到除整个元素(删除键会返回键的值):
        map.remove(null);
        System.out.println(map);

        // 7.public boolean containsKey(object key):判断是否包含某个健，包含返回true,反之
        System.out.println(map.containsKey("java"));

        // 8.public boolean containsValue(Object value): 判断是否包含某个值
        System.out.println(map.containsValue(11));

        // 9.public set<K> keySet():获RMap集合的全部健，
        System.out.println(map.keySet());

        //10.public collection<V> values():获Hap集合的全部值
        System.out.println(map.values());

        //11.把其他Hap集合的数据的入到自己集合中来。(拓展)
        Map<String,Integer> map1 = new HashMap<>();
        map1.put("java1",1);
        map1.put("java2",2);
        Map<String,Integer> map2 = new HashMap<>();
        map2.put("java2",0);
        map2.put("java3",3);
        map1.putAll(map2);
        System.out.println(map1);
        System.out.println(map2);
    }
}
